1. Field of the Invention
The present invention relates to a CDMA (Code Division Multiple Access) cellular system, and more particularly it relates to a method for allocating Walsh codes by group in a CDMA cellular system.
2. Description of the Related Art
In a CDMA communication system, a plurality of subscribers utilize the same frequency concurrently. Therefore, each communication channel using the same frequency must be distinguished from every other communication channel. This is generally accomplished by utilizing a spreading code for separating the data signals from one another in a CDMA communication system. Two common spreading codes which are used are the PN (pseudo noise) code and the Walsh code. Both of these codes use 64-bit binary sequences.
The PN code, in common with all the signals in a cell or a sector in a CDMA mobile communication system, is utilized by the mobile station to distinguish the signals transmitting from multi-paths, different cells, and different sectors. The Walsh code is utilized to distinguish the signals corresponding to each mobile station in the cell or sector signals after PN coding. A Walsh code corresponds to a single row or column of the Hadamard matrix. For example, in a 64 channel CDMA spread spectrum system, particularly mutually orthogonal Walsh codes can be selected from the set of 64 Walsh codes within a 64 by 64 Hadamard matrix. Also, a particular data signal can be separated from the other data signals using a particular Walsh code to spread the particular data signal.
The bit pattern of above-noted 64 codes are arrayed according to the characteristics of the Walsh function. During the modulation, xe2x80x980xe2x80x99 is converted to xe2x80x98+Vxe2x80x99, and xe2x80x981xe2x80x99 to xe2x80x98xe2x88x92Vxe2x80x99, to have the orthogonality that, for random Walsh codes Wa and Wb, the following equations apply: Wa⊕Wa=1, Wb⊕Wb=1, Wa⊕Wb=0, and Wb⊕Wa=0 for transmitting to the mobile station.
The 64 Walsh codes are distinguished as two types: one type being assigned to the overhead channels, and the other type being assigned to the traffic channels (see FIG. 1). The 0th code is assigned to the pilot channel; the 1st-7th codes are assigned to the paging channels; the 32nd code is assigned to the synchronization channel; and the remaining codes, i.e., the 8th-31st and the 33rd-63rd codes, are assigned to the traffics. In the case where the 1st code is only utilized for the paging channel, the 2nd-7th codes (i.e., the remaining six codes) can be used as additional traffics.
In the existing CDMA DCS (Digital Cellular System) and CDMA PCS (Personal Communication Services), the Walsh codes are serially allocated according to the generated calls or data being transmitted. That is, referring to FIG. 1, if xe2x80x9cnxe2x80x9d calls occurred in a cell or a sector, the corresponding BCP (Base station Call control Processor) allocates respective xe2x80x9cnxe2x80x9d Walsh codes to the available codes code-by-code, except for the Walsh codes used for the overhead channels, i.e., the Walsh codes used for the pilot, the paging, and the synchronization channels.
Referring to FIG. 1, in the first state (S1), the Walsh codes for the pilot, the paging, and the synchronization are all BUSY (B), and all the Walsh codes for the traffics are IDLE (I). In the second state (S2), calls occurred corresponding to each of the following Walsh codes: W8, W9, W10, and W11. In the third state (S3), a plurality of calls are allocated serially corresponding to the following Walsh codes: W12, W13, W14, and W15. In the fourth state (S4), the calls corresponding to the 12th and 14th Walsh codes of the third state are removed making these Walsh codes IDLE (I). In the fifth state (S5), other calls are allocated to the 12th and 14th Walsh codes.
In the CDMA DCS and CDMA PCS system according to the prior art, when a call occurs, the Walsh codes are searched serially to determine an IDLE Walsh code, i.e., a Walsh code which does not have a call assigned thereto. This typically involves a long processing time, and, in case of concurrent calls, a caller may have to wait a certain time before his call is assigned to an IDLE Walsh code, thereby, increasing the time required to set up the caller""s call.
It is an object of the present invention to provide a method for grouping the Walsh codes to reduce the load requirements when checking whether the Walsh codes are idle or busy.
It is another object of the present invention to provide a method for detecting the Walsh group having the minimum traffic group to minimize the time for allocating a call or data to be transmitted to an idle Walsh code, thereby, improving the performance of the system and reducing the time required to set up the call.
A preferred embodiment for grouping the Walsh codes in a CDMA DCS and CDMA PCS according to the present invention comprises the steps of initialization, allocation of the Walsh codes, and removal of the Walsh codes. The step of initialization includes the step of dividing the Walsh codes into a plurality of Walsh groups by assigning the number table of the Walsh codes to correspond to these groups. The step of allocation of the Walsh codes includes the steps of searching the plurality of Walsh groups to determine a Walsh group having the minimum traffic, and allocating an idle Walsh code within the minimum traffic group to a call or data to be transmitted. The step of removal of the Walsh code, after it is determined that the call has been completed, includes the steps of searching the Walsh group; selecting the Walsh code which had the call allocated thereto, selecting the Walsh code for removing, reducing the allocation counts of the selected Walsh group, and removing the selected Walsh code.
In the step of initializing, the number of groups the Walsh codes are divided into is determined according to the number of Walsh codes which can be allocated for the purpose of traffics. For example, the number of groups for the most efficient structure is determined by either of two numbers, where one number has the minimum value of the group x (the Walsh code number per group), and the remaining number is assigned as the number of Walsh codes per group. The number table is made to include a starting number of the Walsh code per group according to the determined number of groups.
In the step of allocating an idle Walsh code to a call, the BCP (Base station Call control Processor) of the CDMA base station iteratively checks the numbers of the allocated Walsh codes per group by utilizing the Walsh Group Allocation Count (Wg_Alloc_Cnt) table. This table stores the allocation counts for each of the plurality of Walsh groups. The group which has the minimum allocated Walsh codes is selected as the minimum traffic group. Therefore, the step of allocating the identified idle Walsh code to the call includes the steps of: identifying a starting Walsh code of the minimum traffic group as a starting point and identifying a starting Walsh code of a next group as an ending point using a Walsh group start table (this table stores the starting numbers of the Walsh codes for each of the plurality of Walsh groups); iteratively checking each Walsh code within the minimum traffic group until the idle Walsh code is identified; allocating the call or transmitted data to the identified idle Walsh code in the minimum traffic group; and changing the state of the Walsh code where the call or transmitted data was allocated to in a Walsh code state table from the xe2x80x9cidlexe2x80x9d to the xe2x80x9cbusyxe2x80x9d state.
In the step of removing the Walsh code, when the removal of the allocated Walsh code is requested, the BCP of the CDMA base station searches the Walsh code group to locate the Walsh code to be removed by utilizing the Walsh Group Start Table. This table stores the number of the starting Walsh code of the Walsh code group which contains the Walsh code to be removed. After selecting the Walsh code to be removed, the allocation counts of the Walsh code is reduced by reducing the counter of the Walsh code""s respective Walsh group in the Walsh Group Allocation Count table. The selected Walsh code is then removed by converting the xe2x80x9cbusyxe2x80x9d state of the Walsh code to be removed into the xe2x80x9cidlexe2x80x9d state.
In the step of allocating the Walsh code to the minimum traffic group, if an xe2x80x9cidlexe2x80x9d Walsh code is not identified within the minimum traffic group, then this step terminates. Further, in the step of searching for the Walsh code to be removed, if the Walsh code group which contains the Walsh code to be removed is not selected, then the step of removing the selected Walsh code is terminated.